import argparse
import argcomplete

# 解析命令行参数
def parse_args():
    # parser.add_argument('--mode', type=str, choices=['debug', 'production', 'register', 'daemon', 'stop', 'kill', 'install', 'update'], default='daemon', help='运行模式，默认为 daemon')
    # parser.add_argument('--pid', type=int, help='指定要终止的进程 PID，仅在 kill 模式下使用')
    # parser.add_argument('--pidfile', type=str, help='指定要终止的进程 PID 文件路径，仅在 kill 模式下使用')
    # argcomplete.autocomplete(parser)  # 启用自动补全
    # return parser.parse_args()
    parser = argparse.ArgumentParser(description="RSS 论文更新程序")
    parser.add_argument('--config', '-c', type=str, default='config.yml', help='配置文件路径，默认为 config.yml')
    # parser.add_argument('-c', type=str, default='config.yml', help='配置文件路径，默认为 config.yml')
    parser.add_argument('--mode', '-m', type=str, choices=['debug', 'production', 'register', 'daemon', 'stop',
                                                           'kill', 'install', 'update', 'report'], default='daemon',
                        help='运行模式，默认为 daemon')

    # parser.add_argument('--status', action='store_true', help='检查当前程序的运行状况')
    # 添加快捷别名，通过 action 存储 mode 值
    group = parser.add_mutually_exclusive_group()
    group.add_argument('-d', dest='mode', action='store_const', const='daemon', help='快捷方式，等同于 --mode daemon')
    group.add_argument('-i', dest='mode', action='store_const', const='install', help='快捷方式，等同于 --mode install')
    group.add_argument('-s', dest='mode', action='store_const', const='stop', help='快捷方式，等同于 --mode stop')
    group.add_argument('-u', dest='mode', action='store_const', const='update', help='快捷方式，等同于 --mode update')

    parser.add_argument('-y', dest='auto_conform', action='store_true', default=False, help='自动确认操作，并取消用户确认提示')
    parser.add_argument('--pid', type=int, help='指定要终止的进程 PID，仅在 kill 模式下使用')
    parser.add_argument('--pidfile', type=str, help='指定要终止的进程 PID 文件路径，仅在 kill 模式下使用')
    parser.add_argument('--requirements_file', '-r', type=str,
                        help='指定要安装 requirements.txt 的位置，仅在 install 模式下使用', default='requirements.txt')
    # parser.add_argument('-m', type=str, choices=['debug', 'production'], default='production', help='运行模式，默认为 production')
    argcomplete.autocomplete(parser)  # 启用自动补
    return parser.parse_args()


if __name__ == '__main__':
    args = parse_args()
    print(args)